Management apparatus, communication system, and allocation method

ABSTRACT

There is provided a management apparatus configured to allocate a plurality of terminals to a plurality of proxy servers, the management apparatus including a memory, a processor coupled to the memory and the processor configured to collect first line information of a first line and second line information of a second line, which are used for a terminal of the plurality of terminals, calculate a speed difference between a first line speed of the first line and a second line speed of the second line, based on line speeds in accordance with the first line information and the second line information, and allocate the terminal to a proxy server of the plurality of proxy servers, based on the speed difference.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of theprior Japanese Patent Application No. 2016-153059, filed on Aug. 3,2016, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to a management apparatus,a communication system, and an allocation method.

BACKGROUND

In recent years, smartphones equipped with, for example, functions forcellular communications such as 3rd Generation (3G)/Long Term Evolution(LTE) and functions for wireless LAN communications such as a wirelesslocal area network (WLAN) or Wi-Fi (registered trademark) have rapidlycome into widespread use. Furthermore, known is a link aggregation (LA)technique that accomplishes improvement in throughput (a communicationspeed) with regard to a certain traffic flow by establishing and using,for example, an LTE line and a WLAN line at the same time.

As a type of LA technique, there is a Multipath TCP (MPTCP) connectionin which a transmission control protocol (TCP) connection is establishedto each of different types of lines and data is allocated, for example,to each TCP connection over the LTE line and the WLAN line to performcommunication. The MPTCP connection is standardized by InternetEngineering Task Force (IETF) that is an organization forstandardization. A plurality of TCP connections over lines areaggregated in the MPTCP connection, and the MPTCP connection appears tobe a single TCP connection for an application. Therefore, an adjustmentto the application is unnecessary, and the MPTCP may be applied to anyapplications that use the TCP. Because many applications use the TCPconnection, throughput of the TCP flow is desired to be improved.

However, both the server and the terminal have to support the MPTCP soas to apply the MPTCP to the TCP flow between the server and theterminal. The terminal, if equipped with an MPTCP function, may supportthe MPTCP. However, it is difficult for all servers on the Internet tobe equipped with the MPTCP function. Therefore, an MPTCP proxy server(hereinafter simply referred to as a proxy) for terminating the TCP flowbetween the server and the terminal and switching from the TCP to MPTCPis desirable. The proxy makes the MPTCP connection available to thecommunication between the terminal and the server that does not supportthe MPTCP.

Japanese Laid-open Patent Application Publication Nos. 2014-127790,2014-110639, 2015-70616, 2015-181276, and 2015-181277 are examples ofthe related art.

SUMMARY

According to an aspect of the invention, a management apparatusconfigured to allocate a plurality of terminals to a plurality of proxyservers, the management apparatus includes a memory, a processor coupledto the memory and the processor configured to collect first lineinformation of a first line and second line information of a secondline, which are used for a terminal of the plurality of terminals,calculate a speed difference between a first line speed of the firstline and a second line speed of the second line, based on line speeds inaccordance with the first line information and the second lineinformation, and allocate the terminal to a proxy server of theplurality of proxy servers, based on the speed difference.

The object and advantages of the invention will be realized and attainedby means of the elements and combinations particularly pointed out inthe claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and arenot restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram illustrating an exemplary communication systemaccording to First Embodiment;

FIG. 2 is a diagram illustrating an exemplary communication systembefore load distribution;

FIG. 3 is a diagram illustrating an exemplary communication system whilethe load distribution is in progress;

FIG. 4 is a diagram illustrating an exemplary communication system afterthe load distribution;

FIG. 5 is a diagram illustrating an example of relevance between a linespeed difference and an amount of buffer of a transmission buffer;

FIG. 6 is a block diagram illustrating an exemplary internalconfiguration of a management apparatus according to First Embodiment;

FIG. 7 is a sequence diagram illustrating an example of processingoperation of a communication system that relates to first loaddistribution processing;

FIG. 8 is a flowchart illustrating an example of processing operation ofthe management apparatus that relates to the first load distributionprocessing;

FIG. 9 is a diagram illustrating an exemplary communication system whilethe load distribution is in progress according to Second Embodiment;

FIG. 10 is a block diagram illustrating an exemplary internalconfiguration of a management apparatus according to Second Embodiment;

FIG. 11 is a sequence diagram illustrating an example of processingoperation of a communication system that relates to second loaddistribution processing;

FIG. 12 is a flowchart illustrating an example of processing operationof a management apparatus that relates to the second load distributionprocessing;

FIG. 13 is a block diagram illustrating an exemplary internalconfiguration of a management apparatus according to Third Embodiment;

FIG. 14 is a sequence diagram illustrating an example of processingoperation of a communication system that relates to third loaddistribution processing;

FIG. 15 is a flowchart illustrating an example of processing operationof a management apparatus that relates to the third load distributionprocessing;

FIG. 16 is a diagram illustrating an exemplary allocation patternrelating to the third load distribution processing;

FIG. 17 is a flowchart illustrating an example of processing operationof a third calculation unit that relates to first allocation patterncalculation processing that uses simulated annealing according to FourthEmbodiment;

FIG. 18 is a flowchart illustrating an example of the processingoperation of the third calculation unit that relates to transitionprobability output processing;

FIG. 19 is a flowchart illustrating an example of the processingoperation of the third calculation unit that relates to secondallocation pattern calculation processing that uses a genetic algorithmaccording to Fifth Embodiment;

FIG. 20 is a diagram illustrating an example of crossing-over within agenetic algorithm; and

FIG. 21 is a diagram illustrating an example of mutation within thegenetic algorithm.

DESCRIPTION OF EMBODIMENTS

In deploying a plurality of proxies on a network that accommodates manyterminals, it is desirable to allocate terminals efficiently to theplurality of proxies, and distribute load among the proxies.

Examples of a technique that enables the load to be distributed amongproxy servers are described in detail below with reference to thedrawings. The technique disclosed is not limited to Examples.Furthermore, Examples described below may be appropriately combined in arange where the combination does not incur contradiction.

First Embodiment

FIG. 1 is a diagram illustrating an exemplary communication system 1according to First Embodiment. The communication system 1 illustrated inFIG. 1 has a terminal 2, a server 4 on the Internet 3A, an access point(AP) 5 on a WLAN network 3B, a base station 6 on a mobile core network3C, a relay apparatus 7, a proxy 8, and a management apparatus 9.

The terminal 2 is, for example, a terminal such as a smartphone thatestablishes a WLAN line on the WLAN network 3B and an LTE line on themobile core network 3C at the same time and thus realizes LA in an MPTCPconnection. The server 4 is an apparatus provided on the Internet 3A,and for example, transmits data to the terminal 2. The AP 5 is acommunication point that establishes the WLAN line on the WLAN network3B. The base station 6 is a communication point that establishes the LTEline on the mobile core network 3C. The relay apparatus 7 includes arelay apparatus 7A that relays WLAN data between the proxy 8 and the AP5, and a relay apparatus 7B that relays LTE data between the proxy 8 andthe base station 6. The proxy 8 is an apparatus that switches betweenthe TCP connection and the MPTCP connection between the server 4 and theterminal 2. The proxy 8 performs communication in the TCP connectionbetween the proxy 8 itself and the server 4 and performs communicationin the MPTCP connection between the proxy 8 itself and the terminal 2.The MPTCP connection is data communication in the LA that uses both ofthe TCP connection over the LTE line and the TCP connection over theWLAN line.

The management apparatus 9, for example, is provided on the mobile corenetwork 3C or the WLAN network 3B, and manages the entire communicationsystem 1. The management apparatus 9 is an apparatus that efficientlyallocates the terminals 2 to each of the proxies 8, in order todistribute load among the proxies 8. The management apparatus 9 collectsa modulation and coding scheme (MCS) value of the LTE line and an MCSvalue of the WLAN line that are used for the MPTCP connection for everyterminal 2. The MCS value is line information that results from indexingcombinations of a wireless modulation type, a coding rate, and the like.The higher the received quality of every line becomes, the higher bitrate the MCS value becomes, and the greater the MCS value becomes, thehigher a line speed becomes.

The management apparatus 9 multiplies an MCS value of the LTE line forevery terminal 2 by transmission efficiency of the LTE line, and thuscalculates a line speed of the LTE line. The transmission efficiency ofthe LTE line is assumed to be stipulated in advance. Furthermore, themanagement apparatus 9 multiplies an MCS value of the WLAN line forevery terminal 2 by transmission efficiency of the WLAN line, and thuscalculates a line speed of the WLAN line. The transmission efficiency ofthe WLAN line is assumed to be stipulated in advance. The managementapparatus 9 calculates a line speed difference between the line speed ofthe LTE line and the line speed of the WLAN line, as a load index. Asthe load index becomes higher, the proxy 8 has to be provided with amore amount of buffer of a transmission buffer for buffering the linespeed difference between the WLAN line and the LTE line.

FIG. 2 is a diagram illustrating an exemplary communication system 1before load distribution. The communication system 1 illustrated in FIG.2 has, for example, three proxies 8, that is, proxies #1 to #3, and sixterminals 2, that is, terminals # a to # f. The proxy 8 has a relay unitnot illustrated, and a transmission buffer 8A. The transmission buffer8A of each proxy 8 is assumed to have a predetermined amount of buffer.

The terminals 2 # a and # b are allocated to the proxy 8 #1, and a loadindex of the proxy 8 #1 is a sum of load indexes of terminals 2 # a and# b, which relate to the terminals 2 # a and # b. A load index ofterminal 2 # a is a line speed difference between a line speed obtainedby multiplying the MCS value of the WLAN line for the terminal 2 # a, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # a, bythe transmission efficiency of the LTE line. A load index of terminal 2# b is a line speed difference between a line speed obtained bymultiplying the MCS value of the WLAN line for the terminal 2 # b, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # b, bythe transmission efficiency of the LTE line. Because the proxy 8 #1 isin MPTCP communication with the terminals 2 # a and # b, the terminals 2# a and # b are in a state of being not allocable to proxies 8 otherthan the proxy 8 #1. Data packets for the terminals 2 # a and # b arestored in the transmission buffer 8A of the proxy 8 #1.

The terminals 2 # c and # d are allocated to the proxy 8 #2, and a loadindex of the proxy 8 #2 is a sum of load indexes of terminals 2 # c and# d, which relate to the terminals 2 # c and # d. A load index ofterminal 2 # c is a line speed difference between a line speed obtainedby multiplying the MCS value of the WLAN line for the terminal 2 # c, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # c, bythe transmission efficiency of the LTE line. A load index of terminal 2# d is a line speed difference between a line speed obtained bymultiplying the MCS value of the WLAN line for the terminal 2 # d, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # d, bythe transmission efficiency of the LTE line. Because the proxy 8 #2, isnot in MPTCP communication with the terminals 2 # c and # d, that is, isin non-communication, the terminals 2 # c and # d are in a state ofbeing allocable to other proxies 8. Being in non-communication meansthat the terminal 2 finishes making a connection on a line between theterminal 2 itself and the proxy 8, although a state where the MPTCPconnection is not established is attained.

The terminals 2 # e and # f are allocated to the proxy 8 #3, and a loadindex of the proxy 8 #3 is a sum of load indexes of terminals 2 # e and# f, which relate to the terminals 2 # e and # f. A load index ofterminal 2 # e is a line speed difference between a line speed obtainedby multiplying the MCS value of the WLAN line for the terminal 2 # e, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # e, bythe transmission efficiency of the LTE line. A load index of terminal 2# f is a line speed difference between a line speed obtained bymultiplying the MCS value of the WLAN line for the terminal 2 # f, bythe transmission efficiency of the WLAN line, and a line speed obtainedby multiplying the MCS value of the LTE line for the terminal 2 # f, bythe transmission efficiency of the LTE line. Because the proxy 8 #3 isin non-communication with the terminals 2 # e and # f, the terminals 2 #e and # f are in a state of being allocable to other proxies 8.

The management apparatus 9 calculates a load index of each of theterminals 2 # a to # f. In order to equalize sums of load indexes ofterminals 2 that are being allocated to proxies 8 #1 to #3, based on thecalculated load indexes, the management apparatus 9 allocates theterminals 2 that are in non-communication, to the proxies 8.

FIG. 3 is a diagram illustrating an exemplary communication system 1while the load distribution is in progress. The terminals 2 # a and # bare in MPTCP communication, and terminals 2 # c, # d, # e, and # f arein non-communication. Based on the sum of the load indexes of theterminals 2 that are already allocated to every proxy 8, the managementapparatus 9 allocates the terminals 2 # d and # f that are innon-communication, to the proxy 8 #1 in order to equalize the sums ofthe load indexes of the terminals 2 that are being allocated to theproxy 8.

FIG. 4 is a diagram illustrating an exemplary communication system 1after the load distribution. The management apparatus 9, as illustratedin FIG. 4, allocates the terminals 2 # a, # b, # d, and # f to the proxy8 #1, the terminal 2 # c to the proxy 8 #2, and the terminal 2 # e tothe proxy 8 #3. The sum of load indexes of the terminals 2 # a, # b, #d, and # f, a load index of the terminal 2 # c, and a load index of theterminal 2 # e are almost the same in amount. As a result, the sums ofthe load indexes of the terminals 2 that are being allocated to everyproxy 8 #1 to proxy #3 are almost equalized. Data packets for theterminals 2 # a, # b, # d, and # f are stored in the transmission buffer8A of the proxy 8 #1. A data packet for the terminal 2 # c is stored inthe transmission buffer 8A of the proxy 8 #2. A data packet for theterminal 2 # e is stored in the transmission buffer 8A of the proxy 8#3.

At this point, a mechanism in which as the load index of every terminal2, that is, the line speed difference becomes greater, a more amount ofbuffer of the transmission buffer 8A within the proxy 8 has to beprovided is described. FIG. 5 is a diagram illustrating an example ofrelevance between the line speed difference and an amount of buffer ofthe transmission buffer 8A. FIG. 5 illustrates a relationship betweenthe transmission buffer 8A within the proxy 8 #2, and the terminal 2 #c, in MPTCP communication, which has been allocated to the proxy 8 #2.Transitioning from a phase (a) to a phase (e) occurs in a time series.

In the phase (a), the proxy 8 #2 transmits the data packet D#1 to theterminal 2 # c over the WLAN line, and transmits the data packet D#2 tothe terminal 2 # c over the LTE line. The proxy 8 #2 retains a datapacket in the transmission buffer 8A, until an acknowledgement (ACK)packet corresponding to the data packet is received from the terminal 2# c.

In the phase (b), after receiving the ACK packet A#1, which correspondsto the data packet D#1 from the terminal 2 # c, the proxy 8 #2 transmitsthe data packets D#3 to D#6 to the terminal 2 # c over the WLAN line.Because the line speed of the LTE line is lower than the line speed ofthe WLAN line, the data packet D#2 is assumed not to reach the terminal2 # c.

In the phase (c), the proxy 8 #2 receives the ACK packets A#3 to A#6,which correspond to the data packets D#3 to D#6, respectively, from theterminal 2 # c. Furthermore, because the ACK packet A#1, whichcorresponds to the data packet D#1, is received, the proxy 8 #2 deletesthe data packet D#1 from the transmission buffer 8A. However, becausethe line speed of the LTE line is lower than the line speed of the WLANline, a state where the data packet D#2 does not reach the terminal 2 #c, is assumed. In a specification for MPTCP, for example, the order inwhich the data packets are transmitted is assumed as follows: D#1, D#2,D#3, D#4, D#5, and D#6. In this case, for example, although the ACKpackets that correspond to the data packets D#1 and D#3 to D#6 arereceived, unless the ACK packet that corresponds to the data packet D#2is received, the data packets D#3 to D#6 are not deleted from thetransmission buffer 8A. Therefore, the greater the line speeddifference, the greater the number of out-of-order packets between thelines and the greater the number of data packets that wait for the ACKpackets, which stay in the transmission buffer 8A.

In the phase (d), the proxy 8 #2 receives the ACK packet A#2, whichcorresponds to the data packet D#2, from the terminal 2 # c. As aresult, in the phase (e), the proxy 8 #2 may delete the data packets D#2to D#6 from the transmission buffer 8A. More precisely, the greater theline speed difference in the MPTCP connection, the more out-of-orderpackets occurs between the lines, and the greater the number of datapackets that wait for the ACKs in the transmission buffer 8A. Because ofthis, it is desirable to secure the transmission buffer 8A.

FIG. 6 is a block diagram illustrating an exemplary internalconfiguration of the management apparatus 9 according to FirstEmbodiment. The management apparatus 9 illustrated in FIG. 6 has acommunication IF 11, a memory 12, a central processing unit (CPU) 13,and a bus 14. The communication IF 11 is an IF that managescommunication between each of the AP 5, the base station 6, the relayapparatus 7, and the proxy 8, through the WLAN network 3B or the mobilecore network 3C. The memory 12 is an area in which various programs andvarious data are stored. The CPU 13 controls the entire managementapparatus 9.

The memory 12 has a data area 12A and a process area 12B. The data area12A has a program memory 21, a transmission efficiency memory 22, and anallocation state memory 23. The program memory 21 is an area in whichvarious programs are stored. The transmission efficiency memory 22 is anarea in which transmission efficiency of every line is stored. Thetransmission efficiency is not an element that depends on each terminal2, but depends on a specification for a line. Because of this, thetransmission efficiency is assumed to be stored in advance in thetransmission efficiency memory 22. The allocation state memory 23 is anarea for managing a situation of the allocation of the terminal 2 toevery proxy 8.

The process area 12B is an area for loading a program stored in theprogram memory 21, as a program for processing functions, which isexecuted in the CPU 13. The process area 12B has a reception unit 31, acollection unit 32, a determination unit 33, a first calculation unit34, an allocation unit 35, and a path control unit 36, as processingfunctions.

The reception unit 31 receives a line connection notification or a loadindex change notification from the terminal 2, the base station 6, orthe AP 5 through the communication IF 11. The reception unit 31, forexample, is capable of receiving the line connection notification or theload index change notification from the terminal 2, the base station 6,or the AP 5. However, it may be set in advance from which one of theterminal 2, the base station 6 and the AP 5 the line connectionnotification or the load index change notification is received. The lineconnection notification is notification information that may be obtainedfrom the terminal 2, the base station 6, or the AP 5 in a case where theterminal 2 is in making a connection to the WLAN line or the LTE line.The load index change notification is notification information in a casewhere the load index changes as the load index of the terminal 2 thathas been allocated to the proxy 8 changes, for example, as the receivedquality of a radio wave of the terminal 2, which has already made aconnection, changes.

The collection unit 32 collects an MCS value of each line used for theMPTCP connection from the terminal 2, the base station 6, and the AP 5.Although the terminal 2 is in MPTCP communication between the terminal 2itself and the proxy 8, or is in non-communication, when the terminal 2is in a state of being in connection to a line, the collection unit 32collects the MCS value. More precisely, the collection unit 32 maycollect the MCS value of the WLAN line and the MCS value of the LTE linefor every terminal 2. Being in non-communication is a state other thanbeing in MPTCP communication.

The determination unit 33 determines a communication situation of theterminal 2 in making a connection to a line or whose load index changes,within the terminal 2 being allocated to every proxy 8. Thecommunication situation is whether the terminal 2 is in MPTCPcommunication or is in non-communication. Immediately after the terminal2 makes a connection to a line, the terminal 2 is rarely in MPTCPcommunication, and in a case where the terminal 2 is allocated with adefault setting to a certain proxy 8 before being allocated to the proxy8 considering a load index, the terminal 2 starts the MPTCPcommunication after the time has passed just a little since it makes aconnection to a line. Accordingly, in the case of a specification inwhich allocation of a certain proxy 8 is made by default, thedetermination unit 33 inquires of the proxy 8 whether or not theterminal 2 is in MPTCP communication. In a case where a proxy 8 set bydefault is present, the determination unit 33 makes such an inquiry tothe proxy 8 set by default as the inquire-target proxy 8. In a casewhere a proxy 8 set by default is not present, the determination unit 33makes such an inquiry to all proxies 8 as the inquire-target proxy 8.Furthermore, in a case where the load index change notification due tooccurrence of a change in the load index of the terminal 2 is received,the determination unit 33 inquires of the proxy 8 whether or not theterminal 2 is in MPTCP communication. The determination unit 33 acquiresthe proxy 8 inquired of from the allocation state memory 23.

Based on the MCS value and the transmission efficiency of each line forevery terminal 2, the first calculation unit 34 calculates the linespeed difference as the load index of every terminal 2. The firstcalculation unit 34 calculates the line speed of the WLAN line, which isobtained by multiplying the MCS value of the WLAN line and thetransmission efficiency of the WLAN line for every terminal 2. The firstcalculation unit 34 calculates the line speed of the LTE line, which isobtained by multiplying the MCS value of the LTE line and thetransmission efficiency of the LTE line for every terminal 2. The firstcalculation unit 34 calculates the line speed difference between theline speed of the WLAN line and the line speed of the LTE line for everyterminal 2, as the load index of the terminal 2. Then, the firstcalculation unit 34, as expressed in Expression (1), calculates the sumof the load indexes of the terminals 2 that are being allocated to everyproxy 8. The sum of the load indexes of every proxy 8 is assumed not toinclude a load index of an allocation-target terminal 2 that is aterminal 2 in making a connection to a line or that is a terminal 2whose load index changes.

${{ProxyLoad}\# n} = {\sum\limits_{i \in I_{\# n}}\;{{\left( {{MCS}_{LTE}^{i} \times {TCPeff}_{LTE}} \right) - \left( {{MCS}_{WLAN}^{i} \times {TCPeff}_{WLAN}} \right)}}}$

-   -   MCS^(i) _(LTEorWLAN): MCS value of LTE or WLAN for terminal i    -   TCPeff^(i) _(LTEorWLAN): TCP transmission efficiency of LTE or        WLAN    -   I_(#n): set of terminals that are allocated to proxy # n . . .        (1)

Based on the load index of every terminal 2, a usage situation of everyterminal 2, and the situation of the allocation to the proxy 8, theallocation unit 35 notifies each proxy 8 of an instruction thatallocates the allocation-target terminal 2 which is in non-communicationsuch that the loads among the proxies 8 are equalized. The usagesituation of every terminal 2 is a state of being in MPTCP communicationor a state of being in non-communication. The situation of theallocation to the proxy 8 is a situation of the allocation of theterminal 2 allocated to each proxy 8. The allocation unit 35 allocatesan allocation-target terminal 2 to the proxy 8, and then stores thesituation of the allocation of the terminal 2 to every proxy 8, in theallocation state memory 23.

Based on the allocation situation of the terminal 2 to every proxy 8,the path control unit 36 sets an optimal path for every terminal 2 forthe relay apparatus 7. The path control unit 36 sets a path using arouting table for the relay apparatus 7 on the mobile core network 3Cand the WLAN network 3B or by performing a table operation of the relayapparatus 7 using Open Flow (registered trademark).

Next, operation of the communication system 1 according to the FirstEmbodiment is described. FIG. 7 is a sequence diagram illustrating anexample of processing operation of the communication system 1 thatrelates to first load distribution processing.

In a case where a line connection or occurrence of a load index changeis detected (Operation S11), the terminal 2, the base station 6, or theAP 5 illustrated in FIG. 7 notifies the management apparatus 9 of theline connection notification or the load index change notification(Operation S12). In a case where the line connection notification or theload index change notification is received, the management apparatus 9collects the MCS value of each line, which is used for the MPTCPconnection, from the terminal 2, the base station 6, or the AP 5(Operation S13).

The management apparatus 9 collects a communication situation of everyterminal 2 being allocated, for example, a state of being in MPTCPcommunication, or a state of being in non-communication, from each proxy8 (Operation S14). Based on the MCS value of each line and thetransmission efficiency of each line for every terminal 2, themanagement apparatus 9 calculates the load index of every terminal 2(Operation S15).

Based on the load index of every terminal 2, the usage situation ofevery terminal 2, and the situation of the allocation of the terminal 2to every proxy 8, the management apparatus 9 notifies each proxy 8 ofthe instruction that allocates the allocation-target terminal 2, inorder to equalize the sums of the load indexes of every proxy 8(Operation S16). As a result, based on the allocation instruction, theproxy 8 allocates the allocation-target terminal 2 in non-communication,to the proxy 8. The management apparatus 9 notifies the relay apparatus7 of path setting information indicating a path setting for everyterminal 2 being allocated to each proxy 8 (Operation S17). As a result,based on the path setting information, each relay apparatus 7 setsoptimal paths on the WLAN line and the LTE line, which are used for theMPTCP connection between the proxy 8 and the terminal 2.

The proxy 8 establishes the TCP connection between the proxy 8 itselfand the server 4 (Operation S18). The proxy 8 establishes the TCPconnection over the LTE line between the proxy 8 itself and the terminal2 through the relay apparatus 7 and the base station 6, and establishesthe TCP connection over the WLAN line between the proxy 8 itself and theterminal 2 through the relay apparatus 7 and the AP 5. As a result, theproxy 8 establishes the MPTCP connection over the WLAN line and the LTEline between the proxy 8 itself and the terminal 2 (Operation S19).

FIG. 8 is a flowchart illustrating an example of processing operation ofthe management apparatus 9 that relates to the first load distributionprocessing. The reception unit 31 within the management apparatus 9illustrated in FIG. 6 determines whether or not the line connectionnotification or the load index change notification is received(Operation S21). In the case where the line connection notification orthe load index change notification is received (Yes in Operation S21),the collection unit 32 within the management apparatus 9 collects theMCS value of each line, which is used for the MPTCP connection for everyterminal 2 within the communication system 1 (Operation S22).

The determination unit 33 within the management apparatus 9 determineswhether or not a notification-related terminal 2 is in MPTCPcommunication (Operation S23). In a case where the notification-relatedterminal 2 is not in MPTCP communication (No in Operation S23), thefirst calculation unit 34 within the management apparatus 9 calculatesthe load index based on the MCS value of each line used for the MPTCPconnection for every terminal 2 (Operation S24). The load index is aline speed difference of each line used for the MPTCP connection.

Based on the load index of every terminal 2, the usage situation ofevery terminal 2, and the situation of the allocation of the terminal 2to every proxy 8, the allocation unit 35 within the management apparatus9 allocates the allocation-target terminal 2 to the proxy 8 such thatthe sums of the load indexes of the terminals 2 that have been allocatedto every proxy 8 are equalized (Operation S25). The allocation-targetterminal 2 is a terminal 2 that is in non-communication.

Based on the instruction that allocates the terminal 2, the path controlunit 36 within the management apparatus 9 sets an optimal path thatcorresponds to the situation of the allocation of every terminal 2 tothe proxy 8, for the relay apparatus 7 (Operation S26), and ends aprocessing operation illustrated in FIG. 8. In a case where the lineconnection notification or the load index change notification is notreceived (No in Operation S21), the reception unit 31 ends theprocessing operation illustrated in FIG. 8. In a case where thenotification-related terminal 2 is in MPTCP communication (Yes inOperation S23), the determination unit 33 ends the processing operationillustrated in FIG. 8.

The management apparatus 9 calculates the line speed difference betweenthe line speed obtained by multiplying the MCS value of the WLAN linefor every terminal 2 by the transmission efficiency of the WLAN line,and the line speed obtained by multiplying the MCS value of the LTE linefor every terminal 2 by the transmission efficiency of the LTE line, asthe load index of every terminal 2. The management apparatus 9 allocatesthe allocation-target terminal 2 in non-communication, to each proxy 8such that the sums of the load indexes of the terminals 2 that areallocated to every proxy 8 are equalized among the proxies 8. As aresult, in order to equalize amounts of used buffer of the transmissionbuffers 8A, the management apparatus 9 distributes the load on the proxy8 and thus may increase the number of terminals that are accommodated inthe proxy 8.

The collection unit 32 according to the First Embodiment described abovecollects an MCS value of every line for all terminals 2 within thecommunication system 1, but the collection unit 32 may store the MCSvalue of every line for each terminal 2 in the allocation state memory23. In this case, it is assumed that the collection unit 32, forexample, collects only the MCS value for the terminal 2 in making aconnection to a line, or the terminal 2 whose load index changes, andacquires the MCS value for another terminal 2 from the allocation statememory 23.

The first calculation unit 34 calculates the line speed differencebetween the line speed obtained by multiplying the MCS value of the WLANline by the transmission efficiency of the WLAN line, and the line speedobtained by multiplying the MCS value of the LTE line by thetransmission efficiency of the LTE line, as the load index of everyterminal 2. However, the first calculation unit 34 may calculate a linespeed difference between a line speed stipulated for the MCS value ofthe WLAN line, and a line speed stipulated for the MCS value of the LTEline, as the load index, without taking into consideration thetransmission efficiency. In this case, although the precision of theline speed difference decreases, the first calculation unit 34 maycalculate the line speed difference at high speed.

Furthermore, the first calculation unit 34 may consider an amount ofresidual buffer (an amount of available space) of the transmissionbuffer 8A within the proxy 8 when the allocation-target terminal 2 innon-communication, is allocated to the proxy 8 based on the line speeddifference for every terminal 2. An implementation in such a case isdescribed below as Second Embodiment.

Second Embodiment

FIG. 9 is a diagram illustrating an exemplary communication system 1Awhile the load distribution is in progress, according to SecondEmbodiment. A configuration that is the same as that of thecommunication system 1 according to the First Embodiment is given thesame reference numeral, and descriptions of overlapping configurationsand operations are omitted.

A management apparatus 9A illustrated in FIG. 9 and the managementapparatus 9 according to the First Embodiment are different from eachother in that, in order to equalize the sums of the load indexes amongthe proxies 8 while taking into consideration the amount of residualbuffer of the transmission buffer 8B within the proxy 8, theallocation-target terminal 2 in non-communication is allocated to eachproxy 8. The management apparatus 9A allocates the allocation-targetterminal 2 in non-communication, to each proxy 8 such that a weightingis applied to the sum of the load indexes of each proxy 8 according tothe amount of residual buffer of the transmission buffer 8B and theapplied sums of the load indexes are equalized among the proxies 8.

FIG. 10 is a block diagram illustrating an exemplary internalconfiguration of the management apparatus 9A according to SecondEmbodiment. The management apparatus 9A illustrated in FIG. 10 has thecommunication IF 11, the memory 12, the CPU 13, and the bus 14. Theprocess area 12B within the memory 12 has a residual-amount collectionunit 37 and a second calculation unit 34A, in addition to the receptionunit 31, the collection unit 32, the determination unit 33, theallocation unit 35, and the path control unit 36.

The determination unit 33 inquires of all terminals 2 that are allocatedto the proxy 8 whether or not they are in MPTCP communication. In a casewhere the sum of the load indexes of the terminals 2 that have beenallocated to every proxy 8 is calculated, because the load index of theterminal 2 in MPTCP communication is excluded, it is desirable toinquire of all terminals 2 whether or not they are in MPTCPcommunication.

The residual-amount collection unit 37 collects the amount of residualbuffer of the transmission buffer 8B of every proxy 8. The amount ofresidual buffer of the transmission buffer 8B is an amount that resultsfrom subtracting an amount of used buffer from a capacity of thetransmission buffer 8B. It is assumed that the amount of residual bufferof the transmission buffer 8B within one proxy 8 #1, for example, is 10M bytes, the amount of residual buffer of the transmission buffer 8Bwithin the proxy 8 #2, for example, is 60 M bytes, and the amount ofresidual buffer of the transmission buffer 8B within the proxy 8 #3, forexample, is 50 M bytes.

The second calculation unit 34A calculates the line speed of the WLANline obtained by multiplying the MCS value of the WLAN line for everyterminal 2 by the transmission efficiency of the WLAN line, and the linespeed of the LTE line obtained by multiplying the MCS value of the LTEline by the transmission efficiency of the LTE line. The secondcalculation unit 34A calculates the line speed difference between theline speed of the WLAN line and the line speed of the LTE line for everyterminal 2, as the load index of the terminal 2. The second calculationunit 34A calculates the load index of the terminal 2 innon-communication. It is assumed that the terminal 2 innon-communication, as illustrated in FIG. 9, is equivalent to theterminals 2 # c, # d, # e, and # f, the load index of the terminal 2 # cis 4, the load index of the terminal 2 # d is 1, the load index of theterminal 2 # e is 4, and the load index of the terminal 2 # f is 1.Based on the load index of each terminal 2, the second calculation unit34A, as expressed in Expression (2), calculates the sum of the loadindexes of each proxy 8, to which a weighting is applied according tothe amount of residual buffer of the transmission buffer 8B within eachproxy 8.

${{ProxyLoad}\# n} = {\frac{1}{{Rem}_{\# n}}{\sum\limits_{i \in I_{\# n}}{{\left( {{MCS}_{LTE}^{i} \times {TCPeff}_{WLAN}} \right) - \left( {{MCS}_{LTE}^{i} \times {TCPeff}_{WLAN}} \right)}}}}$

-   -   MCS^(i) _(LTEorWAN): MCS value of LTE or WLAN for terminal i    -   TCPeff^(i) _(LTEorWAN): TCP transmission efficiency of LTE or        WLAN    -   I_(# n): set of terminals that are allocated to proxy # n    -   Rem_(# n): residual amount in transmission buffer to proxy # n .        . . (2)

Based on the load index of the terminal 2 that has been allocated toevery proxy 8, the second calculation unit 34A calculates the sum of theload indexes of each proxy 8. The sum of the load indexes of the proxy 8is assumed not to include the load index of the terminal 2 in MPTCPcommunication. The second calculation unit 34A divides the sum of theload indexes of each proxy 8 by the amount of residual buffer in theproxy 8 that is an allocation destination.

The second calculation unit 34A calculates a sum of load indexes ofallocation patterns in each of which the allocation-target terminal 2 isallocated to each proxy 8 and adopts an allocation pattern in which astandard deviation of the sum of the load indexes of each proxy 8 isminimized. The second calculation unit 34A calculates the sum of theload indexes of the allocation patterns in a case where the terminal 2 #f is allocated to the proxy 8 #1, the proxy 8 #2, or the proxy 8 #3, forevery proxy 8, and adopts the allocation pattern in which the standarddeviation of the sum of the load indexes of each proxy 8 is minimized.

For example, in a case where the terminal 2 # f is allocated to theproxy 8 #1, the sum of the load indexes of the proxy 8 #1 isProxyLoad#1=(1+1)/10=0.20, the sum of the load indexes of the proxy 8 #2is ProxyLoad#2=4/60≅0.067, and the sum of the load indexes of the proxy8 #3 is ProxyLoad#3=4/50=0.080. As a result, in a case where theallocation-target terminal 2 is allocated to the proxy 8 #1, thestandard deviation of the sum ProxyLoad#1,#2,#3 of the load indexes ofeach proxy 8≅0.0600.

Furthermore, in a case where the terminal 2 # f is allocated to theproxy 8 #2, the sum of the load indexes of the proxy 8 #1 isProxyLoad#1=1/10=0.10, the sum of the load indexes of the proxy 8 #2 isProxyLoad#2=(4+1)/60≅0.083, and the sum of the load indexes of the proxy8 #3 is ProxyLoad#3=4/50=0.080. As a result, in a case where theallocation-target terminal 2 is allocated to the proxy 8 #2, thestandard deviation of the sum ProxyLoad#1,#2,#3 of the load indexes ofeach proxy 8≅0.0087.

Furthermore, in a case where the terminal 2 # f is allocated to theproxy 8 #3, the sum of the load indexes of the proxy 8 #1 isProxyLoad#1=1/10=0.10, the sum of the load indexes of the proxy 8 #2 isProxyLoad#2=4/60=0.083, and the sum of the load indexes of the proxy 8#3 is ProxyLoad#3=(4+1)/50=0.10. As a result, in a case where theallocation-target terminal 2 is allocated to the proxy 8 #3, thestandard deviation of the sum ProxyLoad#1,#2,#3 of the load indexes ofeach proxy 8≅0.0157.

Then, the second calculation unit 34A adopts an allocation pattern thatis an allocation pattern in which the standard deviation of theallocation pattern in a case where the terminal 2 # f is allocated tothe proxy 8 #2 is minimized. Therefore, the allocation unit 35 notifiesthe proxy 8 of the instruction that allocates the allocation-targetterminal 2 # f to the proxy 8 #2.

Next, operation of the communication system 1A according to the SecondEmbodiment is described. FIG. 11 is a sequence diagram illustrating anexample of processing operation of the communication system 1A thatrelates to second load distribution processing.

In the case where the occurrence of the line connection or the loadindex change is detected, occurs (Operation S31), the terminal 2, thebase station 6, or the AP 5 illustrated in FIG. 11 notifies themanagement apparatus 9A of the line connection notification or the loadindex change notification (Operation S32). In the case where the lineconnection notification or the load index change notification isreceived, the management apparatus 9A collects the MCS value of eachline, which is used for the MPTCP connection, from the terminal 2, thebase station 6, or the AP 5 (Operation S33).

The management apparatus 9A collects the communication situation ofevery terminal 2 being allocated, from each proxy 8 (Operation S34). Themanagement apparatus 9A collects the amount of residual buffer of thetransmission buffer 8B within each proxy 8 (Operation S35). Based on theMCS value of each line and the transmission efficiency of each line forevery terminal 2, the management apparatus 9A calculates the load indexof every terminal 2 (Operation S36).

Based on the load index of every terminal 2, the usage situation ofevery terminal 2, the situation of the allocation of the terminal 2 toevery proxy 8, and the amount of residual buffer of the transmissionbuffer 8B within the proxy 8, the management apparatus 9A notifies eachproxy 8 of the instruction that allocates the allocation-target terminal2 (Operation S37). As a result, based on the allocation instruction, themanagement apparatus 9A allocates the allocation-target terminal 2 innon-communication, to each proxy 8 in order to equalize the sums of theload indexes of the terminals 2 that have been allocated to every proxy8. The management apparatus 9A notifies the relay apparatus 7 of thepath setting information, in order to indicate the path setting forevery terminal 2 being allocated to each proxy 8 (Operation S38). As aresult, based on the path setting information, each relay apparatus 7sets optimal paths on the WLAN line and the LTE line, which are used forthe MPTCP connection between the proxy 8 and the terminal 2.

The proxy 8 establishes the TCP connection between the proxy 8 itselfand the server 4 (Operation S39). The proxy 8 establishes the TCPconnection over the LTE line between the proxy 8 itself and the terminal2 through the relay apparatus 7 and the base station 6, and establishesthe TCP connection over the WLAN line between the proxy 8 itself and theterminal 2 through the relay apparatus 7 and the AP 5. As a result, theproxy 8 establishes the MPTCP connection over the WLAN line and the LTEline between the proxy 8 itself and the terminal 2 (Operation S40).

FIG. 12 is a flowchart illustrating an example of processing operationof the management apparatus 9A that relates to the second loaddistribution processing. The reception unit 31 within the managementapparatus 9A in FIG. 12 determines whether or not the line connectionnotification or the load index change notification is received(Operation S41). In the case where the line connection notification orthe load index change notification is received (Yes in Operation S41),the collection unit 32 within the management apparatus 9A collects theMCS value of each line, which is used for the MPTCP connection for everyterminal 2 within the communication system 1A (Operation S42).

The determination unit 33 within the management apparatus 9A determineswhether or not the notification-related terminal 2 is in MPTCPcommunication (Operation S43). In a case where the notification-relatedterminal 2 is not in MPTCP communication (No in Operation S43), theresidual-amount collection unit 37 within the management apparatus 9Acollects the amount of residual buffer of the transmission buffer 8Bwithin every proxy 8 (Operation S44). Based on the MCS value of everyline for the terminal 2 and the transmission efficiency of every line,the second calculation unit 34A within the management apparatus 9Acalculates the load index, as a line speed difference for the terminal 2(Operation S45).

Based on the load index of every terminal 2, the usage situation ofevery terminal 2, the situation of the allocation of the terminal toevery proxy 8, and the amount of residual buffer within every proxy 8,the allocation unit 35 within the management apparatus 9A allocates theallocation-target terminal 2 to each proxy 8 (Operation S46). As aresult, based on the allocation instruction, the management apparatus 9Aallocates the allocation-target terminal 2 in non-communication, to eachproxy 8 in order to equalize the sums of the load indexes of theterminals 2 that have been allocated to every proxy 8. Based on theinstruction that allocates the terminal 2, the path control unit 36within the management apparatus 9A sets an optimal path that correspondsto the situation of the allocation of every terminal 2 to the proxy 8,for the relay apparatus 7 (Operation S47), and ends a processingoperation illustrated in FIG. 12. In the case where the line connectionnotification or the load index change notification is not received (Noin Operation S41), the reception unit 31 ends the processing operationillustrated in FIG. 12. In a case where the notification-relatedterminal 2 is in MPTCP communication (Yes in Operation S43), thedetermination unit 33 ends the processing operation illustrated in FIG.12.

The management apparatus 9A calculates the line speed difference betweenthe line speed obtained by multiplying the MCS value of the WLAN linefor every terminal 2 by the transmission efficiency of the WLAN line,and the line speed obtained by multiplying the MCS value of the LTE linefor every terminal 2 by the transmission efficiency of the LTE line, asthe load index. The management apparatus 9A allocates theallocation-target terminal 2 in non-communication, to each proxy 8 suchthat the sums of the load indexes of the terminals 2 that are allocatedto every proxy 8, to which the weighting is applied according to theamount of residual buffer within every proxy 8, are equalized among theproxies 8. As a result, because the amounts of residual buffer of thetransmission buffers 8B are equalized while taking into considerationthe amount of residual buffer of the transmission buffer 8B, themanagement apparatus 9A distributes the load among the proxies 8 andthus may increase the number of terminals that are accommodated in theproxy 8.

Next, an implementation of a communication system 1B in which aplurality of proxies 8 accommodate a large number of terminals 2 isdescribed below as Third Embodiment.

Third Embodiment

FIG. 13 is a diagram illustrating an exemplary internal configuration ofmanagement apparatus 9B according to Third Embodiment. A configurationthat is the same as that of the communication system 1 according to theFirst Embodiment is given the same reference numeral, and descriptionsof overlapping configurations and operations are omitted.

In a case where the terminal 2 is in making a connection to a line, ifthe load index of the terminal 2 that has been allocated to the proxy 8changes, or if a timer indicates that the time is up, the managementapparatus 9B solves an optimization problem. The management apparatus 9Bsets the minimization of the standard deviation of the sum of the loadindexes of the terminals 2 that have been allocated to each proxy 8, tobe an objection function, and sets all sets of allocation patterns ineach of which the terminal 2 is allocated to each proxy 8, to befeasible solutions, thereby solving the optimization problem. Themanagement apparatus 9B obtains the standard deviation of the sum of theload indexes of all sets of allocation patterns, and sets the allocationpattern in which the standard deviation is minimized, to be a solution.The management apparatus 9B allocates each terminal 2 that is theallocation-target, to each proxy 8, according to the allocation patternthat is a solution to the optimization problem of minimizing thestandard deviation.

The process area 12B within the management apparatus 9B illustrated inFIG. 13 has a monitoring unit 38 and a third calculation unit 34B, inaddition to the reception unit 31, the collection unit 32, thedetermination unit 33, the allocation unit 35, and the path control unit36.

The monitoring unit 38 activates a timer, and determines whether or notthe timer indicates that the time is up. In a case where the terminal 2is in making a connection to a line, if the load index of the terminal 2that has been allocated to the proxy 8 changes, or if the timerindicates that the time is up, the third calculation unit 34B solves theoptimization problem.

The third calculation unit 34B calculates the load index of the terminal2, as the line speed difference, from the MCS value of every line andthe transmission efficiency of every line, which are used for the MPTCPconnection within the terminal 2. The third calculation unit 34Bcalculates the sum of the load indexes of the terminals 2 that areallocated to every proxy 8. The third calculation unit 34B sets theminimization of the standard deviation of the sum of the load indexes ofeach proxy 8, to be an objection function, and sets all sets ofallocation patterns in each of which the terminal 2 is allocated to theproxy 8, to be feasible solutions, thereby solving the optimizationproblem. The third calculation unit 34B obtains the allocation patternthat is a solution to the optimization problem. As the solution to theoptimization problem, the standard deviation of the sum of the loadindexes of all combinations is obtained in a state where the terminals 2whose rearrangement is possible are to be allocation targets, and setsthe allocation pattern in which the standard deviation is minimized, tobe a solution. FIG. 16 is a diagram illustrating an exemplary allocationpattern relating to third load distribution processing. Theallocation-target terminals 2 whose rearrangement is possible, which areillustrated in FIG. 16, are the terminals 2 that are not in MPTCPcommunication, that is, terminals 2 # c, # d, # e, and # f that are innon-communication. The standard deviation of the sum of the load indexesof every allocation pattern in which the terminals 2 whose rearrangementis possible are allocated to the proxies 8 #1, #2, and #3, that is, thestandard deviation of ProxyLoad#1,#2,#3 is obtained. The number ofpatterns of all combinations is the n-th power of the number of proxies,where n is the number of terminals 2 whose rearrangement is possible.

Next, operation of the communication system 1B according to the ThirdEmbodiment is described. FIG. 14 is a sequence diagram illustrating anexample of processing operation of the communication system 1B thatrelates to the third load distribution processing.

In FIG. 14, in the case where the occurrence of the line connection orthe load index change is detected, occurs (Operation S51), the terminal2, the base station 6, or the AP 5 notifies the management apparatus 9Bof the line connection notification or the load index changenotification (Operation S52). Furthermore, the management apparatus 9Bdetermines whether or not the timer indicates that the time is up(Operation S53).

In the case where the line connection notification or the load indexchange notification is received, of in a case where the timer indicatesthat the time is up, the management apparatus 9B collects the MCS valueof every line used for the MPTCP connection for the terminal 2, from theterminal 2, the base station 6, or the AP 5 (Operation S54). Themanagement apparatus 9B collects the communication situation of everyterminal 2 being allocated, from each proxy 8 (Operation S55). Based onthe MCS value of each line and the transmission efficiency of each line,which are used for the MPTCP connection for every terminal 2, themanagement apparatus 9B calculates the load index of every terminal 2(Operation S56).

Based on the load index of every terminal 2, the usage situation ofevery terminal 2, and the situation of the allocation of the terminal 2to every proxy 8, the management apparatus 9B solves the optimizationproblem (Operation S57), and notifies each proxy 8 of an instructionthat allocates the allocation pattern in which the standard deviation isminimized, and which indicates the solution to the optimization problem(Operation S58). As a result, based on the allocation instruction, themanagement apparatus 9B allocates the allocation-target terminal 2 innon-communication, to each proxy 8. The management apparatus 9B notifiesthe relay apparatus 7 of the path setting information indicating thepath setting for every terminal 2 being allocated to each proxy 8(Operation S59). As a result, based on the path setting information,each relay apparatus 7 sets optimal paths on the WLAN line and the LTEline, which are used for the MPTCP connection between the proxy 8 andthe terminal 2.

The proxy 8 establishes the TCP connection between the proxy 8 itselfand the server 2 (Operation S60). The proxy 8 establishes the TCPconnection over the LTE line between the proxy 8 itself and the terminal2 through the relay apparatus 7 and the base station 6, and establishesthe TCP connection over the WLAN line between the proxy 8 itself and theterminal 2 through the relay apparatus 7 and the AP 5. As a result, theproxy 8 establishes the MPTCP connection over the WLAN line and the LTEline between the proxy 8 itself and the terminal 2 (Operation S61).

FIG. 15 is a flowchart illustrating an example of processing operationof the management apparatus 9B that relates to the third loaddistribution processing. The reception unit 31 within the managementapparatus 9B in FIG. 15 determines whether or not the line connectionnotification or the load index change notification is received(Operation S71). In the case where the line connection notification orthe load index change notification is received (Yes in Operation S71),the collection unit 32 within the management apparatus 9B collects theMCS value used for the MPTCP connection over each line for everyterminal 2 within the communication system 1B (Operation S72).

The determination unit 33 within the management apparatus 9B acquires acommunication situation of each terminal 2 (Operation S73). The thirdcalculation unit 34B within the management apparatus 9B solves theoptimization problem, the solution to which is the allocation pattern inwhich the standard deviation of the sum of the load indexes of eachproxy 8 is minimized (Operation S74). The allocation unit 35 within themanagement apparatus 9B notifies each proxy 8 of the allocationinstruction that allocates the allocation pattern in which the standarddeviation is minimized to each proxy 8 (Operation S75). As a result, theallocation unit 35 allocates the allocation-target terminal 2 to eachproxy 8 such that the sums of the load indexes of the proxy 8 areequalized.

Based on the instruction that allocates the terminal 2, the path controlunit 36 within the management apparatus 9B sets an optimal path thatcorresponds to the situation of the allocation of every terminal 2 tothe proxy 8, for the relay apparatus 7 (Operation S76), and ends aprocessing operation illustrated in FIG. 15.

Furthermore, in a case where the line connection notification or theload index change notification is not received (No in Operation S71),the monitoring unit 38 within the management apparatus 9B determineswhether or not the timer indicates the time is up (Operation S77). In acase where the timer indicates that the time is up (Yes in OperationS77), the monitoring unit 38 proceeds to Operation S72 in order tocollect the MCS value of every line for each terminal 2. Furthermore, ina case where the timer does not indicate that the time is up (No inOperation S77), the monitoring unit 38 ends a processing operationillustrated in FIG. 15.

The management apparatus 9B according to the Third Embodiment calculatesthe load index as the line speed difference between the WLAN line andthe line speed of the LTE line difference, which is used for the MPTCPconnection for every terminal 2. The management apparatus 9B sets theminimization of the standard deviation of the sum of the load indexes ofeach proxy 8, to be an objection function, and sets all sets ofallocation patterns in each of which each terminal 2 is allocated to theproxy 8, to be feasible solutions, thereby solving the optimizationproblem. Based on the allocation pattern in which the standard deviationof the sum of the load indexes is minimized, which is the solution tothe optimization problem, the management apparatus 9B allocates theallocation-target terminal 2 to each proxy 8. As a result, because theamounts of used buffer of the transmission buffers 8A are equalized, themanagement apparatus 9B distributes the load among the proxies 8 andthus may increase the number of terminals that are accommodated in theproxy 8.

It is noted that, because the management apparatus 9B decided a suitableallocation destination that is the proxy 8, in a state where allterminals 2 that are in non-communication and whose rearrangement ispossible are set to be allocation targets, the amount of used buffer ofthe transmission buffer 8A is more equalized than in the FirstEmbodiment. As a result, the number of terminals that are accommodatedin each proxy 8 may be efficiently increased.

The third calculation unit 34B within the management apparatus 9Baccording to the Third Embodiment calculates the sum of the load indexesof each proxy 8. However, the sum of the load indexes of every proxy 8,to which the weighting is applied according to the amount of residualbuffer of the transmission buffer 8A, may be obtained, taking intoconsideration the amount of residual buffer of the transmission buffer8A when the sum of the load indexes of each proxy 8 is calculated.

The management apparatus 9B according to the Third Embodiment may obtaina suitable allocation pattern in which the standard deviation of the sumof the load indexes is minimized, by solving the optimization problem,but when the number of proxies 8 and the number of terminals 2 whoserearrangement is possible increases, it takes time to calculate the sumof the load indexes. Accordingly, simulated annealing may be adopted asa method of obtaining an approximate allocation pattern, and animplementation in such a case is described below as Fourth Embodiment.

Fourth Embodiment

The third calculation unit 34B within the management apparatus 9B mapsthe allocation pattern in which the terminal 2 is allocated to the proxy8, to “state” defined in the simulated annealing, and maps the standarddeviation of the sum of the load indexes of the terminals 2 that havebeen allocated to every proxy 8, to “evaluation value” defined in thesimulated annealing. As a result, the third calculation unit 34B mayobtain the allocation pattern in which the terminal 2 is allocated toeach proxy 8, as a solution provided by the simulated annealing.

Roughly speaking, in a certain trial, an allocation pattern in a nextstate is created as a state in the vicinity of an allocation pattern ina current state, and if an evaluation value is lower than in the currentstate (which means a more suitable solution), a next trial is performedwith a next state as the current state. Although the evaluation value isnot low, with a certain transition probability, there is also a casewhere a next state is set to be the current state. The transitionprobability is such that a solution does not converge to a local optimalsolution in the vicinity of the current state. As “temperature” becomeslower, the transition probability transitions to a lower probability.Furthermore, as the number of trials increases, “temperature” becomeslower. More precisely, in a phase where the number of trials is small,transitioning occurs more frequently, but as the number of trialsapproaches the maximum number of trials, transitioning does not occur somuch. Thus, it is assumed that a solution is obtained in the vicinity ofthe current state.

FIG. 17 is a flowchart illustrating an example of processing operationof the third calculation unit 34B that relates to first allocationpattern calculation processing that uses the simulated annealingaccording to Fourth Embodiment.

The third calculation unit 34B randomly allocates the terminals 2 whoserearrangement is possible, any of the proxies 8, and sets thisallocation to be an initial state (Operation S81). As the initial state,the terminals 2 # c and # f are allocated to the proxy 8 #1, theterminal 2 # e to the proxy 8 #2, and the terminal 2 # d to the proxy 8#3. The third calculation unit 34B sets the initial state to a currentstate variable and an optimization state variable (Operation S82). Thecurrent state variable and the optimization state variable each arevariables that may store any one of the states. The current statevariable is a variable that stores the current state. The optimizationstate variable is a variable that stores an optimal state at a currentpoint in time.

The third calculation unit 34B sets an evaluation value of the initialstate to a current evaluation value variable and an optimizationevaluation value variable (Operation S83). The current evaluation valuevariable is a variable that stores an evaluation value of a state wherethe current state variable is stored. The optimization evaluation valuevariable is a variable that stores an evaluation value of a state wherethe optimization state variable is stored. Because the initial state isset to the current state variable and the optimization state variable inOperation S82, the third calculation unit 34B sets the evaluation valueof the initial state. The evaluation value of the current state isassumed to be a standard deviation of the sum of the load indexes of theproxies 8 #1, #2, and so forth up to # n.

The third calculation unit 34B increments the number of trials by +1(Operation S84). The maximum number of trials is a setting value. Thethird calculation unit 34B sets the vicinity of a state of the currentstate variable to a next state variable (Operation S85). The next statevariable is a variable that stores a candidate state that has alikelihood of being a current state at the time of a next trial.Furthermore, in the state, the vicinity is assumed to be an allocationpattern in which the proxy 8 that is an allocation destination of theterminal 2 which is randomly selected is randomly selected. In thecurrent state, for example, it is assumed that, in the state where theterminals 2 # c and # f are allocated to the proxy 8 #1, the terminal 2# e to the proxy 8 #2, and the terminal 2 # d to the proxy 8 #3, theterminal 2 # d and the proxy 8 #1 are randomly selected. A next state inthis case is a state in which the terminals 2 # c, # d, and # f, areallocated to the proxy 8 #1 and the terminal 2 # e to the proxy 8 #3.

The third calculation unit 34B sets an evaluation value of a state ofthe next state variable to the next evaluation value variable (OperationS86). The next evaluation value variable is a variable that stores anevaluation value of a state in which the next state variable is stored.The third calculation unit 34B determines whether or not a value of thenext evaluation value variable is smaller than a value of theoptimization evaluation value variable (Operation S87).

In a case where the value of the next evaluation value variable issmaller than the value of the optimization evaluation value variable(Yes in Operation S87), the third calculation unit 34B determines thatthe state of the next state variable stores an optimal state at acurrent point in time, and sets the state of the next state variable tothe optimization state variable (Operation S88). Then, the thirdcalculation unit 34B sets the value of the next evaluation valuevariable to the optimization evaluation value variable (Operation S89).

The third calculation unit 34B determines whether or not the value ofthe optimization evaluation value variable is 0 (Operation S90). In acase where the value of the optimization evaluation value variable is 0(Yes in Operation S90), the third calculation unit 34B determines thatthe standard deviation is 0, that is, the sums of the load indexes ofeach proxy are equalized without any deviation, sets a state of theoptimization state variable to be a solution (Operation S91), and ends aprocessing operation illustrated in FIG. 17.

In a case where the value of the optimization evaluation value variableis not 0 (No in Operation S90), the third calculation unit 34Bdetermines that an optimal solution is not present. Then, with atransition probability that is output with transition probability outputprocessing described below, the third calculation unit 34B sets thestate of the next state variable to the current state variable, and setsthe value of the next evaluation value variable to the currentevaluation value variable (Operation S92).

Next, after the processing in Operation S92, the third calculation unit34B determines whether or not the number of trials reaches the maximumnumber of trials (Operation S93). In a case where the number of trialsreaches the maximum number of trials (Yes in Operation S93), the thirdcalculation unit 34B proceeds to Operation S91 in order to set the stateof the optimization state variable at a current point in time to be asolution. In a case where the number of trials does not reach themaximum number of trials (No in Operation S93), the third calculationunit 34B proceeds to Operation S84 in order to increment the number oftrials by +1.

In a case where the value of the next evaluation value variable is notsmaller than the value of the optimization evaluation value variable (Noin Operation S87), with the transition probability output with thetransition probability output processing, the third calculation unit 34Bset the state of the next state variable to the current state variable,and sets the value of the next evaluation value variable to the currentevaluation value variable. More precisely, the third calculation unit34B proceeds to Operation S92.

FIG. 18 is a flowchart illustrating an example of processing operationof the third calculation unit 34B that relates to the transitionprobability output processing.

The third calculation unit 34B in FIG. 18 determines whether or not thecurrent evaluation value variable is equal to or smaller than the nextevaluation value variable (Operation S101). In a case where the nextevaluation value variable is equal to, or smaller than the currentevaluation value variable (Yes in Operation S101), the third calculationunit 34B determines that the state of the next state variable is a moreideal solution than the state of the current state variable, and sets aprobability to 1 such that the state of the next state variable is thestate of the current state variable (Operation S102). Then, the thirdcalculation unit 34B outputs a post-setting probability (OperationS103), and ends a processing operation illustrated in FIG. 18.

In a case where the next evaluation value variable is neither equal to,nor smaller than the current evaluation value variable (No in OperationS101), the third calculation unit 34B determines that the state of thenext state variable is not a more ideal solution than the state of thecurrent state variable. Then, the third calculation unit 34B sets atransition probability calculated using Expression (3) such that asolution does not converge to a local optimal solution in the vicinityof the current state (Operation S104). Then, the next state is set to bethe current state. Then, the third calculation unit 34B proceeds toOperation S103 in order to output the post-setting transitionprobability.

${Probability} = {e\hat{}\left\{ \frac{{{current}\mspace{14mu}{evaluation}\mspace{14mu}{value}\mspace{14mu}{variable}} - {{next}\mspace{14mu}{evaluation}\mspace{14mu}{value}\mspace{14mu}{variable}}}{temperature} \right\}}$${Temperature} = {\alpha\hat{}\left\{ \frac{{number}\mspace{14mu}{of}\mspace{14mu}{trials}}{{maximum}\mspace{14mu}{number}{\mspace{11mu}\;}{of}\mspace{14mu}{trials}} \right\}}$

-   -   α is set to be in range of 0<α<1    -   e: base of natural logarithm . . . (3)

The management apparatus 9B according to the Fourth Embodimentdetermines an allocation destination the proxy 8 which is approximatelyideal, in a short calculation time, in a state where the terminals 2that are in communication other than in MPTCP communication, whoserearrangement is possible are set to be allocation targets. As a result,because the amounts of used buffer of the transmission buffers 8A aremore equalized than in the First Embodiment, the number of terminalsthat are accommodated in each proxy 8 may be increased.

In the management apparatus 9B according to the Fourth Embodiment, theallocation pattern is obtained using the simulated annealing, but nolimitation to the simulated annealing is imposed. For example, a geneticalgorithm may be used. An implementation in such a case is describedbelow as Fifth Embodiment.

Fifth Embodiment

The third calculation unit 34B within the management apparatus 9B mapsthe allocation pattern for the proxy 8 to which the terminal 2 isallocated, to “individual” defined with a genetic algorithm, and theterminal 2 that has the proxy 8 which is an allocation destination, to“gene” defined with the genetic algorithm. The third calculation unit34B maps the reciprocal of the standard deviation of the sum of the loadindexes of each proxy 8 to “fitness” defined with the genetic algorithm.As a result, the third calculation unit 34B obtains the allocationpattern in which each terminal 2 is allocated to each proxy 8, with asolution that results from the genetic algorithm.

Roughly speaking, the third calculation unit 34B creates a currentgeneration as a set including N (setting value) allocation patterns(that is, individuals). An initial value is randomly created. The thirdcalculation unit 34B performs crossing-over, mutation or copying basedon a group of individuals that are included in a current generation,creates an individual in a next generation, and when the number ofindividuals in a next generation is N, increments the number ofgenerations by +1, with the next generation as the current generation.The third calculation unit 34B performs this trial up to the maximumnumber of generations (setting values), and sets an individual that hashighest fitness, in the current generation in which the last trial isperformed, to be a solution.

FIG. 19 is a flowchart illustrating an example of processing operationof the third calculation unit 34B that relates to second allocationpattern calculation processing that uses a genetic algorithm accordingto Fifth Embodiment.

The third calculation unit 34B creates the current generation, as a setincluding N allocation patterns (that is, individuals) (Operation S111).N is assumed to be a setting value, and N allocation patterns areassumed to be randomly created. The allocation pattern, for example, isassumed to be a state in which the terminals 2 # c and # f are allocatedto the proxy 8 #1, the terminal 2 # e, to the proxy 8 #2, and theterminal 2 # d to the proxy 8 #3. N individuals are created, and the Nindividuals, as a whole, constitute the current generation. One terminal2 allocated to the proxy 8 that is an allocation destination constitutesone gene. The individual is constructed from a plurality of genes. Oneindividual illustrated in FIG. 19, for example, is constructed from 4genes.

The third calculation unit 34B increments the number of generations by+1 (Operation S112), and calculates the fitness of each individual inthe current generation (Operation S113). The fitness is the reciprocalof the standard deviation of the sum of the load indexes of the proxy 8to which each individual is allocated. The individual that has highfitness is suitable.

The third calculation unit 34B performs looping until the number ofindividuals that constitute the next generation is N (Operations S114Aand S114B). The third calculation unit 34B generates a random number R(0≤R≤1) (Operation S115). The third calculation unit 34B compares avalue of the random number R and values of a crossing-over probability(Pc) and a mutation probability (Pm), and performs any one of thecrossing-over, the mutation, and the copying. The values of thecrossing-over probability (Pc) and the mutation probability (Pm) aresetting values.

In a case where the result of the comparison is that 0≤R<Pc, the thirdcalculation unit 34B performs the crossing-over (Operation S116). Withthe crossing-over, two individuals are selected, and crossed-overindividuals are retained in the next generation. When it comes to theselection of the two individuals, individuals of which the number (whichis a setting value, for example, 10) is stipulated are extractedrandomly from the current generation, and two individuals are finallyselected from among the selected individuals, in order of decreasing thefitness. FIG. 20 is a diagram illustrating an exemplary crossing-overwithin the genetic algorithm. In an example in FIG. 20, individual #1and individual j are selected, and two crossing-over points are randomlyselected. In the example in FIG. 20, crossing-over points are set to bebetween the terminal 2 # c and the terminal 2 # d, and between theterminal 2 # e and the terminal 2 # f. Next, the terminals 2 that areinterposed between the two crossing-over points change their positions.In the example in FIG. 20, the terminals 2 # d and # e, in individual#1, and the terminals 2 # d and # e, in individual # j change theirpositions. As a result, allocation destinations of the terminals 2 # c,# d, and # f in individual # i are the proxy 8 #1, and allocationdestination of the terminals 2 # e in individual #1 is the proxy 8 #2.Furthermore, allocation destinations of the terminals 2 # c and # e inindividual # j are the proxy 8 #3, and allocation destinations of theterminals 2 # d and # f in individual # j are the proxy 8 #2. As aresult of the crossing-over, the two individuals are retained as thenext generation.

In a case where the result of the comparison is Pc≤R<Pc+Pm, the thirdcalculation unit 34B performs the mutation (Operation S117). With themutation, one individual is selected, and the mutated individual isretained in the next generation. When it comes to the selection of oneindividual, individuals of which the number is stipulated are extractedrandomly from the current generation, and then, one individual that hasthe highest fitness is finally selected, from among the extractedindividuals. FIG. 21 is a diagram illustrating an exemplary mutationwithin the genetic algorithm. In an example in FIG. 21, individual # iis selected, and the proxy 8 that is an allocation destination of theterminal 2 which is randomly selected is randomly selected and ischanged. In the example in FIG. 21, the terminal 2 # e and the proxy 8#2, which is an allocation destination, are randomly selected. As aresult, allocation destinations of the terminals 2 # c and # f, inindividual # i are selected as the proxy 8 #1, allocation destination ofthe terminals 2 # d in individual # i is selected as the proxy 8 #2, andallocation destination of the terminals 2 # e in individual #1 israndomly selected as the proxy 8 #2. As a result of the mutation, oneindividual is retained as the next generation.

In a case where the result of the comparison is Pc+Pm≤R≤1, the thirdcalculation unit 34B performs the copying (Operation S118). With thecopying, one individual is selected, copied, and is retained in the nextgeneration. When it comes to the selection of one individual,individuals of which the number is stipulated are extracted randomlyfrom the current generation, and then, one individual that has thehighest fitness is finally selected, from among the extractedindividuals.

The third calculation unit 34B determines whether or not the number ofindividuals that constitute the next generation is N (Operation S114B).In a case where the number of individuals that constitute the nextgeneration is not N (No in Operation S114B), the third calculation unit34B proceeds to Operation S115 in order to generate the random number R.In a case where the number of individuals that constitute the nextgeneration is N (Yes in Operation S114B), the third calculation unit 34Bsets a set of next generations to the current generation (OperationS119). More precisely, the third calculation unit 34B causes anindividual that constitutes the next generation to be an individual thatconstitutes the current generation.

The third calculation unit 34B sets the set of next generations to thecurrent generation, and then determines whether the number of currentgenerations reaches the maximum number of generations (Operation S120).In a case where the number of current generations does not reach themaximum number of generations (No in Operation S120), the thirdcalculation unit 34B proceeds to Operation S112 in order to incrementthe number of generations by +1.

In a case where the number of current generations reaches the maximumnumber of generations (Yes in Operation S120), the third calculationunit 34B calculates the fitness of each individual in the currentgeneration (Operation S121), sets an individual that has the highestfitness in the current generation, to be a solution (Operation S122),and ends a processing operation illustrated in FIG. 19.

The management apparatus 9B according to the Fifth Embodiment determinesan allocation destination that is the proxy 8 which is approximatelyideal, in a short calculation time, in the state where the terminals 2that are in communication other than in MPTCP communication, whoserearrangement is possible are set to be allocation targets. As a result,because the amounts of used buffer of the transmission buffers 8A aremore equalized than in the First Embodiment, the number of terminalsthat are accommodated in each proxy 8 may be increased.

There is a line that employs specifications in which the MCS valueresults from indexing combinations of, in addition to a wirelessmodulation type and a coding rate, a frequency bandwidth (a bandwidth of20 MHz, a bandwidth of 40 MHz, or the like) used, a streaming number (1,2, 3, 4, or the like) for multiple-input and multiple-output (MIMO), andthe like. In the case of the line that employs the above specifications,the management apparatus 9 may calculate a speed of the line with theMCS value. In contrast, when it comes to an MCS, there is also a linethat employs specifications that separately define a combination of thefrequency bandwidth and the streaming number without including thefrequency bandwidth and the streaming number in the MCS value. In thecase of the line that employs the above specifications, the managementapparatus 9 collects the MCS value, the frequency bandwidth and thestreaming number, and may calculate the speed of the line, based on theMCS value, the frequency bandwidth, and the streaming number, which arecollected.

In Embodiments described above, the LTE line and the WLAN line areillustrated as the MPTCP connection for every terminal, but nolimitation to these is imposed, and a suitable change is possible.

Furthermore, constituent elements, such as the units that areillustrated, do not necessarily have to be configured physically asillustrated. That is, a specific aspect of distribution or integrationof the units is not limited to the one illustrated, and one or severalof or all of the units may be configured to be distributed or integratedfunctionally or physically on any per-unit basis according to variousloads or usage situations.

One or several of, or all of the various functions for processing, whichare performed in each device, may be made to be performed on a centralprocessing unit (CPU) (or a microcomputer such as a micro processingunit (MPU), and a microcontroller unit (MCU)). Furthermore, it goeswithout saying that one or several of, or all of the various functionsfor the processing may be made to be performed on a program that isinterpretation-executed by the CPU (or the microcomputer such as the MPUor the MCU), or on hardware that uses wired logic.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the inventionand the concepts contributed by the inventor to furthering the art, andare to be construed as being without limitation to such specificallyrecited examples and conditions, nor does the organization of suchexamples in the specification relate to a showing of the superiority andinferiority of the invention. Although the embodiments of the presentinvention have been described in detail, it should be understood thatthe various changes, substitutions, and alterations could be made heretowithout departing from the spirit and scope of the invention.

What is claimed is:
 1. A management apparatus configured to allocate aplurality of terminals to a plurality of proxy servers, the managementapparatus comprising: a memory; and a processor coupled to the memoryand the processor configured to: collect first line information of afirst line and second line information of a second line, for a terminalof the plurality of terminals supporting the first line and the secondline and allocated to a proxy server; calculate a speed differencebetween a first line speed of the first line and a second line speed ofthe second line, based on line speeds in accordance with the first lineinformation and the second line information; determine a second terminalfrom the plurality of terminals to be allocated to a second proxy serverof the plurality of proxy servers; calculate a load based on the speeddifference of the terminal allocated to the proxy server; allocate thedetermined second terminal from the plurality of terminals to the secondproxy server of the plurality of proxy servers, such that the load amongthe proxy servers is equalized; set minimization of a standard deviationof the speed difference for the terminal allocated to the proxy server,to be an objective function, set all sets of an allocation pattern inwhich an allocation-target terminal is allocated to the proxy server foreach terminal, to be feasible solutions, and solve a problem ofoptimizing the allocation pattern in which the standard deviation isminimized.
 2. The management apparatus according to claim 1, wherein theprocessor is further configured to: calculate the first line speed andthe second line speed, based on line information and transmissionefficiencies of each of the first line and the second line, the lineinformation resulting from indexing a combination of a wirelessmodulation type and a coding rate, and calculate the speed differencebased on the first line speed and the second line speed, the first lineand the second line being established at a same time between theterminal and the proxy server.
 3. The management apparatus according toclaim 1, wherein the processor is further configured to: collect, foreach of the plurality of proxy servers, an amount of available space ofa buffer in which transmission data is stored, and allocate thedetermined second terminal to the proxy server, based on a sum of speeddifferences for terminals allocated to the proxy server and the amountof available space of the buffer in the proxy server.
 4. The managementapparatus according to claim 1, wherein the processor is furtherconfigured to: determine whether or not the plurality of terminals arein communication by using the first line and the second line that areestablished, and allocate a terminal in non-communication to the proxyserver, based on the speed difference for the terminal in communication,which is allocated to the proxy server.
 5. The management apparatusaccording to claim 1, wherein the processor is further configured tocalculate the speed difference of the first line and the second linethat are established between the terminal and the proxy server, when theterminal detects a connection to the first line or the second line, orwhen a terminal allocated to the proxy server detects a change in thespeed difference for the terminal.
 6. The management apparatus accordingto claim 1, wherein the processor is further configured to: set theallocation pattern to a state defined in simulated annealing, set thestandard deviation to an evaluation value defined in the simulatedannealing, and calculate the allocation pattern in which the standarddeviation is minimized, as a solution provided by the simulatedannealing.
 7. The management apparatus according to claim 1, wherein theprocessor is further configured to: set the allocation pattern to be anindividual defined in a genetic algorithm, set the terminal allocated tothe proxy server, to be a gene defined in the genetic algorithm, set thestandard deviation to be a fitness defined in the genetic algorithm, andcalculate the allocation pattern in which the standard deviation isminimized, as a solution provided by the genetic algorithm.
 8. Acommunication system comprising: a plurality of terminals; a pluralityof proxy servers; and a management apparatus configured to allocate theplurality of terminals to the plurality of proxy servers, the managementapparatus including: a memory; and a processor coupled to the memory andthe processor configured to: collect first line information of a firstline and second line information of a second line, for a terminal of theplurality of terminals supporting the first line and the second line andallocated to a proxy server; calculate a speed difference between afirst line speed of the first line and a second line speed of the secondline, based on line speeds in accordance with the first line informationand the second line information; determine a second terminal from theplurality of terminals to be allocated to a second proxy server of theplurality of proxy servers; calculate a load based on the speeddifference of the terminal allocated to the proxy server; allocate thedetermined second terminal from the plurality of terminals to the secondproxy server of the plurality of proxy servers, such that the load amongthe proxy servers is equalized; set minimization of a standard deviationof the speed difference for the terminal allocated to the proxy server,to be an objective function, set all sets of an allocation pattern inwhich an allocation-target terminal is allocated to the proxy server foreach terminal, to be feasible solutions, and solve a problem ofoptimizing the allocation pattern in which the standard deviation isminimized.
 9. An allocation method of a management apparatus configuredto allocate a plurality of terminals to a plurality of proxy servers,the allocation method comprising: collecting first line information of afirst line and second line information of a second line, for a terminalof the plurality of terminals supporting the first line and the secondline and allocated to a proxy server; calculating a speed differencebetween a first line speed of the first line and a second line speed ofthe second line, based on line speeds in accordance with the first lineinformation and the second line information; determining a secondterminal from the plurality of terminals to be allocated to a secondproxy server of the plurality of proxy servers; calculating a load basedon the speed difference of the terminal allocated to the proxy server;allocating the determined second terminal from the plurality ofterminals to the second proxy server of the plurality of proxy servers,such that the load among the proxy servers is equalized; settingminimization of a standard deviation of the speed difference for theterminal allocated to the proxy server, to be an objective function,setting all sets of an allocation pattern in which an allocation-targetterminal is allocated to the proxy server for each terminal, to befeasible solutions, and solving a problem of optimizing the allocationpattern in which the standard deviation is minimized.